package com.glela.activ.service;

import java.util.Set;

import com.glela.activ.model.OActiv;
import com.glela.activ.model.OActivitiesInfo;
import com.glela.activ.service.domain.OActivAvlInfoVo;
import com.glela.activ.service.domain.OActivProductParam;
import com.glela.activ.service.domain.info.OActivInfoVo;

/**
 * 订单活动服务类
 * @author zls
 *
 */
public interface OActivService {
	/**
	 * <dl>
	 * <dt>查询当前商品参与活动</dt>
	 * </dl>
	 * @param productId
	 * @param activTime
	 * @return OActiv
	 * @author zls
	 * @date 2017年10月21日 下午2:22:03
	 */
	OActiv queryByProductId(long productId, String activTime);

	/**
	 * <dl>
	 * <dt>商品参与活动详细信息</dt>
	 * </dl>
	 * @param activProductParams 要参与活动商品
	 * @return OActivAvlProductVo
	 * @author zls
	 * @date 2017年10月21日 下午2:39:29
	 */
	OActivAvlInfoVo queryProductActiv(final Set<OActivProductParam> activProductParams);

	/**
	 * <dl>
	 * <dt>商品参与活动详细信息</dt>
	 * </dl>
	 * @param activProductParams 要参与活动商品
	 * @param nowTime 当前时间
	 * @return OActivAvlInfoVo
	 * @author zls
	 * @date 2018年1月5日 上午10:35:36
	 */
	OActivAvlInfoVo queryProductActiv(Set<OActivProductParam> activProductParams, String nowTime);

	/**
	 * <dl>
	 * <dt>商品参与活动详细信息</dt>
	 * </dl>
	 * @param activProductParam
	 * @return OActivAvlInfoVo
	 * @author zls
	 * @date 2017年10月23日 上午11:57:25
	 */
	OActivAvlInfoVo queryProductActiv(final OActivProductParam activProductParam);

	/**
	 * <dl>
	 * <dt>订单活动详细信息</dt>
	 * </dl>
	 * @param activId
	 * @return OActivInfoVo
	 * @author zls
	 * @date 2017年10月21日 下午2:26:29
	 */
	OActivInfoVo queryOActivInfo(long activId);

	/**
	 * **********************************************
	 * @Title: getOActivitiesInfo
	 * @Description: 商品活动详情页（根据商品ID、活动ID查询）
	 * @param @param goodsId
	 * @param @param activId
	 * @param @return
	 * @return OActivitiesInfo
	 * @throws @author NingChongQing
	 * @date 2017年10月21日 下午3:18:56 **********************************************
	 */
	public OActivitiesInfo getOActivitiesInfo(Long goodsId, Long activId);

}